home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / viewers / polyview / plyvw102.lha / PolyView1.02 / vg.h < prev   
C/C++ Source or Header  |  1990-11-13  |  3KB  |  102 lines

  1. /**  29-AUG-89  */
  2. /** This is VG.H.  defines and  structures used in vgroup routines */
  3. #include "df.h"
  4. #define PRIVATE            static
  5.  
  6. #define FULL_INTERLACE    0
  7. #define NO_INTERLACE        1
  8. #define VMAXFIELDS        20              /* max no of fields per vertex */
  9. #define MAXFIELDNAMELEN    8                /* attr name: 5 chars max */
  10. #define MAXVSNAMELEN        64                /* vs name : 64 chars max */    
  11. #define MAXVGNAMELEN        64                /* vg name : 64 chars max */    
  12.  
  13.  
  14. typedef struct vgroup_desc         VGROUP;
  15. typedef struct vsubgroup_desc     VSUBGROUP; 
  16.  
  17. /* ----- V G R O U P ------------------- */
  18. #define MAXNGS 36                            /* max no of vgob per vgroup */
  19. struct vgroup_desc{ 
  20.     int  otag, oref;                /* of this vgroup */
  21.       DF        *f;                          /* HDF file ptr */
  22.     VSUBGROUP* vs[MAXNGS];       /* pts to a vgob if opened; or else NULL */
  23.     int     ngs;                         /* S no of vgob */
  24.     int    tag[MAXNGS];            /* S tag of vgob */
  25.     int    ref[MAXNGS];            /* S ref of vgob */
  26.      char    vgname[MAXVGNAMELEN];/* S name of vgob */
  27.     };        /* VGROUP */
  28.  
  29. /* ----- V S U B G R O U P ------------------- */
  30. typedef struct symbol_definition_type {
  31.     char* name;                        /* symbol name */
  32.     int    type;                        /* whether int, char, float etc */
  33.     int    isize;                    /* as stored in HDF */
  34.     int    order;                    /* order of field */
  35.     } SYM_DEFN;
  36.  
  37. typedef struct write_struct {
  38.     int32    n;                            /* S actual # fields in vertex */
  39.     int    ivsize;                    /* S size of vertex as stored in HDF */
  40.      char     name[VMAXFIELDS][MAXFIELDNAMELEN];
  41.                                         /* S name of each field(symbol) */
  42.     int    len[VMAXFIELDS];         /* S length of fieldname */
  43.     int    type[VMAXFIELDS];        /* S type */
  44.       int    off[VMAXFIELDS];        /* S offset of field with vertex in HDF file */
  45.       int     isize[VMAXFIELDS];    /* S internal (HDF) size [incl order] */
  46.       int    order[VMAXFIELDS];    /* S order of field */
  47.       int    esize[VMAXFIELDS];    /*  external (local machine) size [incl order] */
  48.     int    (*toIEEEfn[VMAXFIELDS])  ();
  49.     int    (*fromIEEEfn[VMAXFIELDS])();
  50.       } VWRITELIST;
  51.  
  52. typedef struct read_struct {
  53.     int32    nvread;                    /* # vertices read so far */
  54.     int    n;                         /* # fields to read */
  55.     int    item[VMAXFIELDS];     /* index into vftable_struct */
  56.     } VREADLIST;
  57.  
  58.  
  59. #define USYMMAX 36                /* max user-defined symbols allowed */
  60. struct vsubgroup_desc{ 
  61.       int    otag, oref;             /* of this vsubgroup */
  62.       DF        *f;                          /* HDF file ptr */
  63.       int    access;                    /* 'r' or 'w' */
  64.  
  65.      char    vsname[MAXVSNAMELEN];/* S name of this vsubgroup */
  66.       int    interlace;                /* S actual */
  67.       int    nvertices;                /* S  # vertices in file */
  68.       VWRITELIST    wlist;
  69.       VREADLIST    rlist;
  70.     int  nusym;
  71.     SYM_DEFN usym[USYMMAX];
  72.       };  /* VSUBGROUP */ 
  73.  
  74.  
  75. /***********  H D F  vertex  tags  ***********/
  76. #define VGDESCTAG      61820 
  77. #define VSDESCTAG     61821
  78. #define VSDATATAG     61822 
  79. /********************************************/
  80.  
  81. /* ------------------------------------------------------------------ */
  82. /* these are as defined by IEEE */
  83. #define IEEE_UNTYPEDSIZE   0
  84. #define IEEE_CHARSIZE      1
  85. #define IEEE_INT16SIZE     2
  86. #define IEEE_FLOATSIZE     4
  87.  
  88. /* ------------------------------------------------------------------ */
  89. #define LOCAL_NOTYPE            0
  90. #define LOCAL_CHARTYPE      1
  91. #define LOCAL_INTTYPE          2
  92. #define LOCAL_FLOATTYPE        3
  93.  
  94. #define LOCAL_UNTYPEDSIZE  0
  95. #define LOCAL_CHARSIZE      sizeof(unsigned char)
  96. #define LOCAL_INTSIZE          sizeof(int)
  97. #define LOCAL_FLOATSIZE     sizeof(float)
  98.  
  99. /* ------------------------------------------------------------------ */
  100. /* extern int jn;  debugger switch */
  101.  
  102.